// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_ACCESSIBILITY_AX_SERIALIZABLE_TREE_H_
#define UI_ACCESSIBILITY_AX_SERIALIZABLE_TREE_H_

#include "ui/accessibility/ax_tree.h"
#include "ui/accessibility/ax_tree_source.h"

namespace ui {

class AX_EXPORT AXSerializableTree : public AXTree {
public:
    AXSerializableTree();
    explicit AXSerializableTree(
        const AXTreeUpdate& initial_state);
    ~AXSerializableTree() override;

    // Create a TreeSource adapter for this tree. The client gets ownership
    // of the return value and should delete it when done.
    virtual AXTreeSource<const AXNode*, AXNodeData, AXTreeData>*
    CreateTreeSource();
};

} // namespace ui

#endif // UI_ACCESSIBILITY_AX_TREE_H_
